Imports System.ComponentModel

<Serializable()> _
Public Class Section9
    Inherits BaseDescriptor

    <Serializable(), TypeConverter(GetType(CustomExpandableObjectConverter))> _
    Public Class SectionVBOL
        Inherits BaseDescriptor

        Private _LAMBDA As Double
        Private _N_IBOL As Double
        Private _K_IBOL As Double
        Private _N_EBOL As Double
        Private _K_EBOL As Double

        <Browsable(False)> _
        Public Property LAMBDA() As Double
            Get
                Return _LAMBDA
            End Get
            Set(ByVal value As Double)
                _LAMBDA = value
            End Set
        End Property

        <CustomOrder(1), CustomDisplayName("N_IBOL"), CustomDescription("N_IBOL"), DefaultValue(0.0), TypeConverter(GetType(CustomDoubleConverter))> _
        Public Property N_IBOL() As Double
            Get
                Return _N_IBOL
            End Get
            Set(ByVal value As Double)
                _N_IBOL = value
            End Set
        End Property

        <CustomOrder(2), CustomDisplayName("K_IBOL"), CustomDescription("K_IBOL"), DefaultValue(0.0), TypeConverter(GetType(CustomDoubleConverter))> _
        Public Property K_IBOL() As Double
            Get
                Return _K_IBOL
            End Get
            Set(ByVal value As Double)
                _K_IBOL = value
            End Set
        End Property

        <CustomOrder(3), CustomDisplayName("N_EBOL"), CustomDescription("N_EBOL"), DefaultValue(0.0), TypeConverter(GetType(CustomDoubleConverter))> _
        Public Property N_EBOL() As Double
            Get
                Return _N_EBOL
            End Get
            Set(ByVal value As Double)
                _N_EBOL = value
            End Set
        End Property

        <CustomOrder(4), CustomDisplayName("K_EBOL"), CustomDescription("K_EBOL"), DefaultValue(0.0), TypeConverter(GetType(CustomDoubleConverter))> _
        Public Property K_EBOL() As Double
            Get
                Return _K_EBOL
            End Get
            Set(ByVal value As Double)
                _K_EBOL = value
            End Set
        End Property

    End Class

    'S9C
    Private _W_IBOL As Double
    Private _W_EBOL As Double

    '0.9.4
    'Private _LICOH_IBOL As Integer
    'Private _LICOH_EBOL As Integer

    Private _VBOL As New List(Of SectionVBOL)

    <CustomOrder(1), CustomCategory("S9C"), CustomDisplayName("W_IBOL"), CustomDescription("W_IBOL"), DefaultValue(0.0), TypeConverter(GetType(CustomDoubleConverter))> _
    Public Property W_IBOL() As Double
        Get
            Return _W_IBOL
        End Get
        Set(ByVal value As Double)
            _W_IBOL = value
        End Set
    End Property

    <CustomOrder(2), CustomCategory("S9C"), CustomDisplayName("W_EBOL"), CustomDescription("W_EBOL"), DefaultValue(0.0), TypeConverter(GetType(CustomDoubleConverter))> _
    Public Property W_EBOL() As Double
        Get
            Return _W_EBOL
        End Get
        Set(ByVal value As Double)
            _W_EBOL = value
        End Set
    End Property

    '0.9.4
    '<CustomOrder(3), CustomCategory("S9C"), CustomDisplayName("LICOH_IBOL"), CustomDescription("LICOH_IBOL"), DefaultValue(0), TypeConverter(GetType(CustomInt32ConverterLICOH))> _
    'Public Property LICOH_IBOL() As Object
    '    Get
    '        Return _LICOH_IBOL
    '    End Get
    '    Set(ByVal value As Object)
    '        _LICOH_IBOL = CInt((New CustomInt32ConverterLICOH).ConvertFrom(value))
    '    End Set
    'End Property

    '0.9.4
    '<CustomOrder(4), CustomCategory("S9C"), CustomDisplayName("LICOH_EBOL"), CustomDescription("LICOH_EBOL"), DefaultValue(0), TypeConverter(GetType(CustomInt32ConverterLICOH))> _
    'Public Property LICOH_EBOL() As Object
    '    Get
    '        Return _LICOH_EBOL
    '    End Get
    '    Set(ByVal value As Object)
    '        _LICOH_EBOL = CInt((New CustomInt32ConverterLICOH).ConvertFrom(value))
    '    End Set
    'End Property

    <CustomOrder(5), CustomCategory("S9C"), CustomDisplayName("VBOL"), CustomDescription("VBOL"), TypeConverter(GetType(CustomArrayConverter)), [ReadOnly](True)> _
    Public Property VBOL() As SectionVBOL()
        Get
            Return Me.Items.ToArray
        End Get
        Set(ByVal value As SectionVBOL())
            Me.Items.Clear()
            For Each objSectionVBOL As SectionVBOL In value
                Me.Items.Add(objSectionVBOL)
            Next
        End Set
    End Property

    <Browsable(False)> _
    Public ReadOnly Property Items() As List(Of SectionVBOL)
        Get
            Return _VBOL
        End Get
    End Property

End Class
